* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body {
    width: 100%;
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: Arial, sans-serif;
    background-color: #212121;
    color: #fff;
}

#app {
    display: flex;
    gap: 20px;
}

#app div {
    padding: 0.5em 1em;
    border-radius: 99999em;
    font-size: 2rem;
    cursor: pointer;
    background-color: transparent;
    transition: all 0.3s ease;
    border: 3px solid var(--color);
    color: var(--color);
    /* 文字阴影做文字副本，相当于把文字复制了一份，并向下移动了一段距离 */
    text-shadow: 0 1.5em #fff;
    overflow: hidden;
}

#app div:hover {
    color: #fff;
    box-shadow: 0 0 20px var(--color), 0 0 100px var(--color);
    background-color: var(--color);
}

#app div span {
    display: inline-block;
    animation: floatDown 0.3s ease calc(var(--i) * 50ms) forwards;
}

#app div:hover span {
    display: inline-block;
    animation: floatUp 0.3s ease calc(var(--i) * 50ms) forwards;
}

@keyframes floatUp {
    to {
        transform: translateY(-1.5em);
    }
}
@keyframes floatDown {
    from {
        /* 先让元素闪现到 hover 时的样子，然后再下落，以实现动画效果 */
        transform: translateY(-1.5em);
    },
    to {
        transform: translateY(1.5em);
    }
}